﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace XLugia.Lib.XDataBase.Base.Lib
{
    /// <summary>
    /// 数据库连接器
    /// </summary>
    public class DatabaseConnector : IDisposable
    {
        /// <summary>
        /// 获取或设置数据库类型。
        /// </summary>
        public DatabaseTypes databaseType = DatabaseTypes.MSSQL;

        /// <summary>
        /// 数据库类型枚举，现支持MSSQL、MySQL。
        /// </summary>
        public enum DatabaseTypes
        {
            /// <summary>
            /// Microsoft SQL Server
            /// </summary>
            MSSQL = 0,

            /// <summary>
            /// MySQL
            /// </summary>
            MySQL = 1
        }

        /// <summary>
        /// 获取或设置数据库连接字符串
        /// </summary>
        public string connectionString { get; set; }

        /// <summary>
        /// 获取或设置数据库命令超时时间（秒），默认30秒。
        /// </summary>
        public int commandTimeout = 30;

        /// <summary>
        /// 获取或设置数据库事务锁定行为，默认级别为ReadCommitted。
        /// </summary>
        public IsolationLevel isolationLevel = IsolationLevel.ReadCommitted;

        /// <summary>
        /// 获取或设置数据库源数据连接字符串
        /// </summary>
        public string metadata { get; set; }

        /// <summary>
        /// 资源释放
        /// </summary>
        public void Dispose()
        {
            this.connectionString = null;
        }
    }
}
